/*************************************************************************
                         argParser  -  description
                             -------------------
    debut                : 10 oct. 2009
    copyright            : (C) 2009 par Binome 3310
*************************************************************************/

//---- Description de la classe <argParser> (fichier argParser.h) --------

//--------------------------------------------------------------- INCLUDE

//-------------------------------------------------------- Include systeme

//------------------------------------------------------ Include personnel
#include "argParser.h"

//------------------------------------------------------------- Constantes
//----------------------------------------------------------------- PUBLIC

//----------------------------------------------------- Methodes publiques
// type Collection::Méthode (liste des paramètres)
// Algorithme
//
//{
//} //------ Fin de Méthode

bool argParser::flagExist(string flag)
{
	if (argumentMap.find(flag) != argumentMap.end())
	{
		return true;
	}
	else
	{
		return false;
	}
}

bool argParser::optionExist(string flag)
{
	if (argumentMap.find(flag) != argumentMap.end())
	{
		if (argumentMap.find(flag)->second.size() != 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

vector<string> argParser::getOption(string flag)
{
	return argumentMap.find(flag)->second;
}

//-------------------------------------------------- Surcharge d'opérateur

//-------------------------------------------- Constructeurs - destructeur
argParser::argParser(int argc, char *argv[])
{
	vector<string> option;
	string currentArgument;
	string nextArgument;
	int i (0);

	while (i < argc)
	{
		currentArgument = argv[i];
		nextArgument = argv[i+1];

		if(currentArgument[0] == '-')
		{
			if(nextArgument[0] == '-')
			{
				option = argumentMap[currentArgument];
				option.push_back ("");
				argumentMap[currentArgument] = option;
			}
			else
			{
				option = argumentMap[currentArgument];
				option.push_back (nextArgument);
				argumentMap[currentArgument] = option;
			}
		}
		else
		{
			option = argumentMap["noFlag"];
			option.push_back (currentArgument);
			argumentMap["noFlag"] = option;
		}

		++i;
	}

} //------ Fin de argParser

argParser::~argParser()
{
} //------ Fin de ~argParser

//------------------------------------------------------------------ PRIVE

//----------------------------------------------------- Méthodes protégées

